package com.houweishi.module.stock.service.impl;

import java.util.List;

import com.houweishi.module.stock.domain.StockDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.houweishi.module.stock.mapper.BizStockMapper;
import com.houweishi.module.stock.domain.BizStock;
import com.houweishi.module.stock.service.IBizStockService;
import org.springframework.util.CollectionUtils;

/**
 * 库存管理Service业务层处理
 * 
 * @author houweishi
 * @date 2023-02-25
 */
@Service
public class BizStockServiceImpl implements IBizStockService 
{
    @Autowired
    private BizStockMapper bizStockMapper;

    /**
     * 查询库存管理
     * 
     * @param id 库存管理主键
     * @return 库存管理
     */
    @Override
    public BizStock selectBizStockById(Long id)
    {
        return bizStockMapper.selectBizStockById(id);
    }

    /**
     * 查询库存管理列表
     * 
     * @param bizStock 库存管理
     * @return 库存管理
     */
    @Override
    public List<BizStock> selectBizStockList(BizStock bizStock)
    {
        return bizStockMapper.selectBizStockList(bizStock);
    }

    /**
     * 查询库存列表
     *
     * @param bizStock 库存
     * @return 库存
     */
    @Override
    public List<StockDto> selectStockDtoList(BizStock bizStock)
    {
        List<StockDto> list = bizStockMapper.selectStockDtoList(bizStock);
        if(!CollectionUtils.isEmpty(list)){
            list.forEach(stockDto -> {
                //查询各个仓库库存
                List<StockDto> stockDtoList = bizStockMapper.selectStockByProduct(stockDto);
                stockDto.setStockQuantityList(stockDtoList);
            });
        }
        return list;
    }

    /**
     * 新增库存管理
     * 
     * @param bizStock 库存管理
     * @return 结果
     */
    @Override
    public int insertBizStock(BizStock bizStock)
    {
        return bizStockMapper.insertBizStock(bizStock);
    }

    /**
     * 修改库存管理
     * 
     * @param bizStock 库存管理
     * @return 结果
     */
    @Override
    public int updateBizStock(BizStock bizStock)
    {
        return bizStockMapper.updateBizStock(bizStock);
    }

    /**
     * 批量删除库存管理
     * 
     * @param ids 需要删除的库存管理主键
     * @return 结果
     */
    @Override
    public int deleteBizStockByIds(Long[] ids)
    {
        return bizStockMapper.deleteBizStockByIds(ids);
    }

    /**
     * 删除库存管理信息
     * 
     * @param id 库存管理主键
     * @return 结果
     */
    @Override
    public int deleteBizStockById(Long id)
    {
        return bizStockMapper.deleteBizStockById(id);
    }
}
